#ifndef __basic_integration_hpp__
#define __basic_integration_hpp__

#include <croco/ssh/ssh.hpp>
#include <boost/thread/mutex.hpp>
#include <set>
#include <string>

class basic_integration : public croco::ssh::integration
{
public:
    void add_user(const std::string& u, const std::string& p);

private:
    virtual int get_auth_methods() const;
    virtual bool verify_user_passwd(const std::string& user, const std::string& passwd);
    virtual void set_pty_name(const std::string& name);
    virtual void set_pty_size(const pty_width& w, const pty_height& h, const pty_pxwidth& pxw, const pty_pxheight& pxh);
    virtual void set_env_var(const std::string& name, const std::string& value);

    typedef std::set< std::pair<std::string, std::string> > KnownUsers;
    KnownUsers m_users;
    boost::mutex m_usersSentinel;
};

#endif // __basic_integration_hpp__
